from enum import Enum


# 可监听事件
class EventType(Enum):
    # 插件需要重载
    PluginReload = "plugin.reload"
    # 插件动作
    PluginAction = "plugin.action"
    # 执行命令
    CommandExecute = "command.execute"
    # 档案已添加
    ArchiveAdded = "archive.added"
    # 档案已删除
    ArchiveUpdated = "archive.updated"
    # 档案已删除
    ArchiveDeleted = "archive.deleted"
    # 系统错误
    SystemError = "system.error"
    # 发送消息通知
    NoticeMessage = "notice.message"


# 消息类型
class NotificationType(Enum):
    # 资源下载
    Download = "资源下载"
    # 整理入库
    Organize = "整理入库"
    # 订阅
    Subscribe = "订阅"
    # 站点消息
    SiteMessage = "站点消息"
    # 媒体服务器通知
    MediaServer = "媒体服务器通知"
    # 处理失败需要人工干预
    Manual = "手动处理通知"
    # 插件消息
    Plugin = "插件消息"


class MessageChannel(Enum):
    """
    消息渠道
    """
    Wechat = "微信"
    Telegram = "Telegram"
    Slack = "Slack"
    SynologyChat = "SynologyChat"
    VoceChat = "VoceChat"
    Web = "Web"
    WebPush = "WebPush"


# 系统配置Key字典
class SystemConfigKey(Enum):
    # 已安装的插件
    InstalledPlugins = "InstalledPlugins"
    # 插件安装回报
    PluginInstallReport = "PluginInstallReport"
    # 用户已安装的插件
    UserInstalledPlugins = "UserInstalledPlugins"
    # 通知消息渠道设置
    NotificationChannels = "NotificationChannels"
